package com.zhangtai.modules.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 
 *
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2020-06-30 16:01:21
 */
@Data
public class TransferInfoUpdateVo implements Serializable {
	private static final long serialVersionUID = 1L;

			/**
		 * id
		 */
			@NotNull(message = "id不能为空")
			@ApiModelProperty(value="id",required = true)
			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			private Long transferId;

			@ApiModelProperty(value="员工id",required = true)
			@NotNull(message = "员工id不能为空")
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
			private Long oid;
			/**
//		 * 申请人
//		 */
			@ApiModelProperty(value="发起人姓名",required = false)
			private String applyUserName;

	@ApiModelProperty(value="发起人工号",required = false)
	private String applyCode;

			/**
		 * 员工工号
		 */
			@NotNull(message = "工号不能为空")
			@ApiModelProperty(value="员工工号",required = false)
			private String userCode;
			/**
		 * 调动日期
		 */
			@ApiModelProperty(value="调动日期",required = false)
			private Date transferDate;
			/**
		 * 调动员工姓名
		 */
			@ApiModelProperty(value="员工姓名",required = false)
			private String name;
			/**
		 * 调动类型，0:平调，1：升职调，2：降职调
		 */
			@ApiModelProperty(value="调动类型，0:平调，1：升职调，2：降职调",required = false)
			private Integer transferType;
			/**
		 * 调动方式，0:部门内部调转，1：单位内部门之间调动，2：跨单位之间调动
		 */
			@ApiModelProperty(value="调动方式，0:部门内部调转，1：单位内部门之间调动，2：跨单位之间调动",required = false)
			private Integer type;

	/**
	 * 调转后公司id
	 */
	@ApiModelProperty(value="拟调入公司",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long afterOrgId;
	@ApiModelProperty(value="调转后部门",required = false)
	private String afterOrg;



	@ApiModelProperty(value="拟调入部门id，",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long afterDepartmentId;

	@ApiModelProperty(value="拟调入部门",required = false)
	private String afterDepartment;



	@ApiModelProperty(value="拟调入岗位id，读接口/job/findJobByOrgId/{orgId}获取",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long afterJobId;

	@ApiModelProperty(value="拟调入岗位",required = false)
	private String afterJob;




	@ApiModelProperty(value="职级类别,1:专业职级，2：管理职级",required = false)
	private Integer afterJobLevelType;




	@ApiModelProperty(value="调动后专业职级id，读 /job/findJobLevel 接口获取",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long afterJobLevelId;

	@ApiModelProperty(value="调动后职级",required = false)
	private String afterJobLevel;




			/**
		 * 调动原因
		 */
			@ApiModelProperty(value="调动原因",required = false)
			private String reason;

	@ApiModelProperty(value="附件url",required = false)
	private List<String> url;

	/**
	 * 0:未提交，1：提交审bpm审核中，2：审核通过，3驳回
	 */
	@ApiModelProperty(value="0:未提交，1：提交审bpm审核中，2：审核通过，3驳回",required = false)
	private Integer auditStatus;

	@ApiModelProperty(value="实际到岗日期",required = false)
	private Date realHireDate;

	/**
	 * 借调开始时间
	 */
	@ApiModelProperty(value="借调开始时间",required = false)
	private Date beginTransferDate;

	/**
	 * 借调结束时间
	 */
	@ApiModelProperty(value="借调结束时间",required = false)
	private Date endTransferDate;


	/**
	 * 原补贴结束时间
	 */
	@ApiModelProperty(value="原补贴结束时间")
	private Date beforeSubsidyEnd;
	/**
	 * 原补贴金额
	 */
	@ApiModelProperty(value="原补贴金额")
	private BigDecimal beforeSubsidy;
	/**
	 * 原补贴id
	 */
	@ApiModelProperty(value="原补贴id")
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long beforeSubsidyId;
	/**
	 * 调整后补贴
	 */
	@ApiModelProperty(value="调整后补贴")
	private BigDecimal afterSubsidy;
	/**
	 * 调整后补贴开始时间
	 */
	@ApiModelProperty(value="调整后补贴开始时间")
	private Date afterSubsidyStart;
	/**
	 * 调整后补贴结束时间
	 */
	@ApiModelProperty(value="调整后补贴结束时间")
	private Date afterSubsidyEnd;






}
